import { Injectable } from '@angular/core';
import { HttpClient, HttpResponse, HttpHeaders } from '@angular/common/http';
// import { Event } from './incident.model';
import { ConfigService } from 'app/config/config.service';
import { INCIDENT_API_URL } from 'app/app.constants';
import { LoginService } from 'app/auth/login.service';
import { Subject, Observable, BehaviorSubject } from 'rxjs';

@Injectable({
    providedIn: 'root'
})
export class ScheduledService {
    private apiUrl_equip_online = this.config.apiUrl.user;
    public events: Event[] = [];
    public resourceUrl = this.config.apiUrl.incident;
    // public resourceUrl = 'http://192.168.0.56:9583/vnqnincidentmgt/getScheduledEventByParam';
    public resourceUrlResponsePlan = this.config.apiUrl.responseplan;
    public schuleduledUrl = '';
    public enumUrl = this.config.apiUrl.enum;
    // public resourceUrl = INCIDENT_API_URL;

    headerOptions = new HttpHeaders({
        Authorization: this.ls.getAccessToken()
    });

    constructor(private http: HttpClient, private config: ConfigService, private ls: LoginService) {}

    // 获取list列表
    getAllList(data) {
        return this.http.post<any>(this.resourceUrl + '/vnqnincidentmgt/getScheduledEventByParam', data);
        // return this.http.post<any>(this.resourceUrl, data);
    }

    // 创建scheduled
    createScheduled(data, header) {
        let headers = new HttpHeaders();
        headers = headers.append('Authorization', this.ls.getAccessToken());
        headers = headers.append('isForce', header.isFource);
        headers = headers.append('zoneId', header.zoneId);
        return this.http.post<any>(this.resourceUrl + '/vnqnincidentmgt/createScheduledEvent', data, { headers });
    }
    // 获取用户列表
    getAllUser(param): Observable<any> {
        // const url = `${this.apiUrl_equip_online}/userMgt/user/getAllUser`;
        return this.http.post<any>(this.apiUrl_equip_online + '/userMgt/user/getAllUserInfoByPage', param);
    }
    // 修改scheduled
    updateScheduled(data, header) {
        let headers = new HttpHeaders();
        headers = headers.append('Authorization', this.ls.getAccessToken());
        headers = headers.append('isForce', header.isFource);
        headers = headers.append('zoneId', header.zoneId);

        return this.http.post<any>(this.resourceUrl + '/vnqnincidentmgt/updateScheduledEvent', data, { headers });
    }

    // 删除scheduled
    deleteScheduled(data) {
        return this.http.post<any>(this.resourceUrl + `/vnqnincidentmgt/deleteScheduledEvent?eventId=${data}`, data);
    }

    // 将计划事件设为待启动状态
    readySatartScheduled(data, header) {
        let headerSend = new HttpHeaders();
        headerSend = headerSend.append('Authorization', this.ls.getAccessToken());
        headerSend = headerSend.append('isForce', header.isFource);
        headerSend = headerSend.append('zoneId', header.zoneId);
        return this.http.post<any>(this.resourceUrl + `/vnqnincidentmgt/beginNow?eventId=${data}`, data, { headers: headerSend });
    }

    // 取消计划事件
    cancelScheduled(data, header) {
        let headerSend = new HttpHeaders();
        headerSend = headerSend.append('Authorization', this.ls.getAccessToken());
        headerSend = headerSend.append('isForce', header.isFource);
        headerSend = headerSend.append('zoneId', header.zoneId);
        return this.http.post<any>(this.resourceUrl + `/vnqnincidentmgt/cancelScheduledEvent?eventId=${data}`, data, {
            headers: headerSend
        });
    }

    // 获取历史事件list列表
    getHistoryList(data) {
        return this.http.post<any>(this.resourceUrl + '/vnqnincidentmgt/getHistScheduledEventByParam', data);
        // return this.http.post<any>(this.resourceUrl, data);
    }

    // 获取Enum列表接口

    getAllEnumInfo() {
        return this.http.get<any>(this.enumUrl + '/vnqnenummgt/user/getAllEnumInfo');
    }

    // public renderHeader(arr2, arr3) {
    //     return [
    //         {
    //             name: 'ID',
    //             key: null,
    //             value: 'ir_id',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Type',
    //             key: null,
    //             value: 'ir_type',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Start Date',
    //             key: null,
    //             value: 'start_Time',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Planned Time To Clear',
    //             key: null,
    //             value: 'end_Time',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Zone ID',
    //             key: null,
    //             value: 'zone_ID',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Road Name',
    //             key: null,
    //             value: 'road_Name',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Lane Blockage',
    //             key: null,
    //             value: 'lane_Blockage',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Source',
    //             key: null,
    //             value: 'source',
    //             isChecked: true,
    //             selectList: arr2
    //         },
    //         {
    //             name: 'Status',
    //             key: null,
    //             value: 'veri_State',
    //             isChecked: true,
    //             selectList: arr3
    //         }
    //     ];
    // }
    // public hisRenderHeader(arr2, arr3) {
    //     return [
    //         {
    //             name: 'ID',
    //             key: null,
    //             value: 'ir_id',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Type',
    //             key: null,
    //             value: 'ir_type',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Start Date',
    //             key: null,
    //             value: 'start_Time',
    //             isChecked: true
    //         },
    //         {
    //             name: 'End Date',
    //             key: null,
    //             value: 'end_time',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Planned Time To Clear',
    //             key: null,
    //             value: 'end_Time',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Zone ID',
    //             key: null,
    //             value: 'zone_ID',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Road Name',
    //             key: null,
    //             value: 'road_Name',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Lane Blockage',
    //             key: null,
    //             value: 'lane_Blockage',
    //             isChecked: true
    //         },
    //         {
    //             name: 'Source',
    //             key: null,
    //             value: 'source',
    //             isChecked: true,
    //             selectList: arr2
    //         },
    //         {
    //             name: 'Status',
    //             key: null,
    //             value: 'veri_State',
    //             isChecked: true,
    //             selectList: arr3
    //         }
    //     ];
    // }

    // public SOURCESELECTLIST() {
    //     return [
    //         { label: 'All', value: null },
    //         { label: 'Surveillance Camera', value: '0' },
    //         { label: 'Police Patrol', value: '1' },
    //         { label: 'Call In', value: '2' },
    //         { label: 'Automatically Detect Accident', value: '3' },
    //         { label: 'Others', value: '4' }
    //     ];
    // }
    // public STATUSSELECTLIST() {
    //     return [
    //         { label: 'All', value: null },
    //         { label: 'Anticipated', value: '0' },
    //         { label: 'Notified', value: '1' },
    //         { label: 'Confirmed', value: '2' },
    //         { label: 'In Progress', value: '3' },
    //         { label: 'Over', value: '4' }
    //     ];
    // }

    // data
    // formIncidentRecordListData(array, irType, pageParam) {
    //     const data = {
    //         condition: {
    //             end_Time: {
    //                 endTime: null,
    //                 startTime: null
    //             },
    //             ir_id: null,
    //             ir_type: null,
    //             start_Time: {
    //                 endTime: null,
    //                 startTime: null
    //             }
    //         },
    //         pageNum: pageParam.pageNo,
    //         pageSize: pageParam.pageSize
    //     };
    //     array.forEach((item, i) => {
    //         // tslint:disable-next-line:prefer-const
    //         let { key, value } = item;
    //         if (value === 'ir_type') {
    //             key = irType;
    //         }
    //         if (key === '') {
    //             key = null;
    //         }
    //         if (value !== 'start_Time' && value !== 'end_Time') {
    //             data.condition[value] = key;
    //         }
    //     });
    //     return data;
    // }
}
